草庐IT

MySQL 主键查询扫描 5000 倍太多的行

全部标签

ruby-on-rails - 在 Rails 中通过 belongs_to 关系查询记录

我有一个事件模型,它们属于一个位置如何选择location.country=Australia的所有事件?(例如)我可以在一个范围内这样做吗? 最佳答案 使用最新的rails版本,您可以:Activity.joins(:location).where(locations:{country:"Australia"})注意:它是joins(:location)中的位置(单数),因为它引用了belongs_to关系名称它是where(…)中的位置(复数),因为它引用了表名后者意味着如果您有以下情况:belongs_to:location,

ruby - 思维狮身人面像未知类型 'mysql';跳绳

我使用的是ts版本2.0.5、rails3.0.9和mysql20.2.11尝试使用rakets:index创建索引时,出现以下错误:ERROR:source'technical_core_0':unknowntype'mysql';skipping.我的development.sphinx.conf包含:sourcetechnical_core_0{type=mysqlsql_host=localhostsql_user=rootsql_pass=sql_db=ps_developmentsql_sock=/tmp/mysql.socksql_query_pre=SETNAMESut

ruby - 使用 ActiveRecord 在查询对象中转义参数?

给定一个查询对象(不是AR模型)classComplexQueryQUERY=如何方便地转义所有参数?我成功地使用了三种技术,但没有一种是方便的。使用raw_connection(对我而言)返回PG::Conn的实例并调用exec_params。我对此并不满意,因为exec_params需要一组详细的参数来指定数据类型。在我的查询对象中包含ActiveRecord::Sanitization并使用其中一种方便的方法,例如replace_named_bind_variables。我对此不满意,因为replace_named_bind_variables是protected并且我必须使用s

ruby - 在文本文件中查找与正则表达式匹配的行

谁能解释一下我如何在Ruby中使用正则表达式来只返回字符串的匹配项。例如,如果代码读取一个包含一系列名称的.txt文件:JohnSmithJamesJonesDavidBrownTomDavidsonetcetc..并且要匹配的单词被输入为“ohn”,然后它只会返回“JohnSmith”,但不会返回任何其他名字。 最佳答案 注意:在现代Rubies中,不要使用File.each_line,而是使用IO.foreach。例如:[1]pry(main)>IO.foreach('./.bashrc')do|l|[1]pry(main)*p

ruby-on-rails - 如何将主键添加到rails中的表

您好,我的Rails应用程序中有一个表,它没有任何ID列或主键。那是因为这张表是从以前的应用程序带入我的Rails应用程序的,并且该表已预先填充了数据。我现在意识到,如果没有整数主键,rails将无法在浏览器中显示编辑和显示View。所以我需要在我的数据库中添加一个id列,这是一个主键和自动增量。根据我的谷歌搜索,我发现了一些关于为表创建主键的帖子,但没有一个是完整的。所以我想知道是否有人可以帮我一下。到目前为止,我所知道的是为了更改表,必须编写一个迁移然后运行它。添加id列需要执行的命令如下:railsgeneratemigrationadd_id_to_businessesid:p

sql - 何时使用 ORM(Sequel、Datamapper、AR 等)与纯 SQL 进行查询

我的一位同事目前正在设计如下所示的SQL查询以生成报告,这些报告通过外部数据查询显示在excel文件中。目前只需要DB上的上报流程(无CRUD操作)。我试图说服他最好使用ruby​​ORM以便能够在rails/sinatra应用程序中显示数据。尽管在显示数据方面有明显的优势,但学习使用像Sequel或Datamapper这样的ORM对他有什么优势?他正在编写的SQL查询显然相当复杂,并且对SQL比较陌生,他经常提示它非常耗时且令人困惑。是否可以使用ORM编写极其复​​杂的查询?如果是这样,哪个最合适(我听说Sequel对遗留数据库有好处)?在进行复杂的数据库查询时,学习Ruby和使用O

ruby - 上帝启动了太多进程

我有一个god脚本,它应该监视两个stalker进程。问题是24小时后它启动了太多进程。这是神脚本。rails_root=File.expand_path("../..",__FILE__)2.timesdo|n|God.watchdo|w|w.group="app-scripts"w.name="run-#{n}"w.interval=30.secondsw.dir=File.dirname(__FILE__)w.env={"BUNDLE_GEMFILE"=>"#{rails_root}/Gemfile","RAILS_ENV"=>"production","BEANSTALK_UR

ruby-on-rails - 在 rails 中过滤 ActiveRecord 查询

我习惯了Django,在那里你可以在查询集上运行多个过滤方法,即Item.all.filter(foo="bar").filter(something="else")。然而,这在Rails中并不容易。Item.find(:all,:conditions=>["foo=:foo",{:foo=bar}])返回一个数组,这意味着这将不起作用:Item.find(:all,:conditions=>["foo=:foo",{:foo='bar'}]).find(:all,:conditions=>["something=:something",{:something='else'}])所以我

ruby-on-rails - 如何在 Rails 控制台中查看 MySQL 查询

这个问题在这里已经有了答案:HowtoshowSQLqueriesrunintheRailsconsole?(8个答案)关闭8年前。有没有办法在Rails控制台中查看从ActiveRecord触发了哪些MySQL查询?

ruby-on-rails - 如何在 OS X 上使用 ruby​​ 2.3 为 mysql2 gem 解析 "incompatible library version"?

我使用的是ruby​​2.3,在gemfile中,我列出了mysql2gem。但是当我尝试运行rakedb:migrate时,我得到以下信息:/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2.rb:31:in`require':incompatiblelibraryversion-/Users/me/.gem/ruby/2.3.0/gems/mysql2-0.4.2/lib/mysql2/mysql2.bundle(fatal)我似乎无法绕过这个。我用Homebrew安装了Mysql5.7,尝试更新包,卸载并重新安装mysql